Systems, methods, and media for selecting antennas and beamformers

ABSTRACT

Systems that: (a) select a current antenna subset; (b) receive signals in response to a transmission of pilot symbols using the current antenna subset: (c) determine a current objective function for the current antenna subset; (d) replace an antenna in the current antenna subset with another antenna not, in the current antenna subset, to form a next antenna subset; (e) receive signals in response to a transmission of pilot symbols using the next antenna subset; (f) determines a next objective function for the current antenna subset; (g) determines whether the next objective function is better than the current objective function, and if so creates a corresponding next occupation probability vector entry; and (h) determines whether the value for the corresponding next occupation probability vector entry is larger than a value for an optimal occupation probability vector entry, and if so sets the second antenna subset as the optimal antenna subset.

CROSS REFERENCE TO RELATED APPLICATION

The application claims the benefit of U.S. Provisional Patent Application No. 61/480,121, filed Apr. 28, 2011, which is hereby incorporated by reference herein in its entirety.

TECHNICAL FIELD

Systems, methods, and media for selecting antennas and beamformers are provided.

BACKGROUND

Certain high giga-Hertz communications techniques, such as 60 GHz millimeter wave communications, have received significant recent attention and are considered as promising technologies for short-range broadband wireless transmission with data rates up to multi-giga bits/sec. Wireless communications at such frequencies can possess several advantages including a huge clean unlicensed bandwidth (up to 7 GHz), a compact size of transceiver due to the short wavelength, and less interference brought by high atmospheric absorption. Standardization activities have been ongoing for 60 GHz Wireless Personal Area Networks (WPAN) (i.e., IEEE 802.15) and Wireless Local Area Networks (WLAN) (i.e., IEEE 802.11). The key physical-layer characteristics of this system include a large-scale MIMO system (e.g., 32×32) and the use of both transmit and receive beamforming techniques.

To reduce hardware complexity, typically the number of radio-frequency (RF) chains (which can include amplifiers, AD/DA converters, mixers, etc.) employed is smaller than the number of antenna elements, and an antenna selection technique is used to fully exploit the beamforming gain afforded by the large-scale MIMO antennas. Although various schemes for antenna selection exist in the literature, they all assume that the MIMO channel matrix is known or can be estimated. In some such systems, however, the receiver may have no access to such a channel matrix, for example, because the received signals may be combined in the analog domain prior to digital baseband due to an analog beamformer or phase shifter. Instead, in such cases, the receiver may only have access to the scalar output of the receive beamformer. Hence, it has been a challenging problem to devise an antenna selection method based on such a scalar only rather than the channel matrix.

Accordingly, new systems, methods, and media for selecting antennas and beamformers are desirable.

SUMMARY

Systems, methods, and media for selecting antennas and beamformers are provided. In some embodiments, systems for selecting antennas are provided, the systems comprising: at least one hardware processor that: (a) selects a current antenna subset of a plurality of transmit antennas and receive antennas; (b) receives signals in response to a transmission of pilot symbols using the current antenna subset; (c) determines a current objective function for the current antenna subset based on the signals received using the current antenna subset; (d) replaces an antenna in the current antenna subset with another antenna not in the current antenna subset to form a next antenna subset; (e) receives signals in response to a transmission of pilot symbols using the next antenna subset; (f) determines a next objective function for the current antenna subset based on the signals received using the next antenna subset; (g) determines whether the next objective function is better than the current objective function, and if so creates a next occupation probability vector entry having a value corresponding to the next antenna subset; and (h) determines whether the value for the next occupation probability vector entry is larger than a value for an optimal occupation probability vector entry, and if so sets the second antenna subset as the optimal antenna subset.

In some embodiments, methods for selecting antennas are provided, the methods comprising: (a) selecting a current antenna subset of a plurality of transmit antennas and receive antennas; (b) receiving signals in response to a transmission of pilot symbols using the current antenna subset; (c) determining a current; objective function for the current antenna subset based on the signals received using the current antenna subset; (d) replacing an antenna in the current antenna subset with another antenna not in the current antenna subset to form a next antenna subset; (e) receiving signals in response to a transmission of pilot symbols if sing the next antenna subset; (f) determining a next objective function for the current antenna subset based on the signals received using the next antenna subset; (g) determining whether the next objective function is better than the current objective function, and if so creating a next occupation probability vector entry having a value corresponding to the next antenna subset; and (h) determining whether the value for the next occupation probability vector entry is larger than a value for an optimal occupation probability vector entry, and if so setting the second antenna subset as the optimal antenna subset.

In some embodiments, non-transitory computer-readable media containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for selecting antennas are provided, the method comprising: (a) selecting a current antenna subset of a plurality of transmit antennas and receive antennas; (b) receiving signals in response to a transmission of pilot symbols using the current antenna subset; (c) determining a current objective function for the current antenna subset based on the signals received using the current antenna subset; (d) replacing an antenna in the current antenna subset with another antenna not in the current antenna subset to form a next antenna subset; (e) receiving signals in response to a transmission of pilot symbols using the next antenna subset; (f) determining a next objective function for the current antenna subset based on the signals received using the next antenna subset; (g) determining whether the next objective function is better than the current objective function, and if so creating a next occupation probability vector entry having a value corresponding to the next antenna subset; and (h) determining whether the value for the next occupation probability vector entry is larger than a value for an optimal occupation, probability vector entry, and if so setting the second antenna subset as the optimal antenna subset.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an example of hardware in accordance with some embodiments.

FIG. 2 is a diagram illustrating an example of line of sight (LOS) and non-LOS components in signal propagation in accordance with some embodiments.

FIG. 3 is a diagram illustrating an example of a process for selecting antennas in accordance with some embodiments.

FIG. 4 is a diagram illustrating an example of a process for selecting beam formers in accordance with some embodiments.

FIG. 5 is a diagram illustrating an example of a process for selecting backup antennas in accordance with some embodiments.

DETAILED DESCRIPTION

By exploiting the strong line-of-sight property of high giga-Hertz channels, such as 60 GHz channels, an iterative antenna selection process based on discrete stochastic approximation, that can quickly lock onto a near-optimal antenna subset, can be provided. Moreover, given a selected antenna subset, an adaptive transmit and receive beamforming selection process based on the stochastic gradient method, that can make use of a low-rate feedback channel to inform the transmitter about the selected beams, can also be provided.

As shown in FIG. 1, in some embodiments, a MIMO system 100 with a transmitter 102 with N_(t) (e.g., 32) transmit antennas 104 and a receiver 106 with N_(r) (e.g., 10) receive antennas 108 can be provided. Transmitter 102 may also include RF chains 110, an antenna selection and beamforming controller 112, and an RF switch 114. Receiver 106 may also include RF chains 116, an antenna selection and beamforming controller 118, and an RF switch 120.

Antennas 104 and 108 can be any suitable antennas, such as antennas having an omni-directional antenna pattern and a 20 dBi gain and vertical linear polarization.

RF chains 110 and 116 may be any suitable RF chains, and may include any suitable components, such as amplifiers, AD/DA converters, mixers, etc. Any suitable number of RF chains 110 and 116, such as ten each, can be provided in some embodiments.

Antenna selection and beamforming controllers 112 and 118 may be any suitable logic, gate arrays, hardware processors, computers, etc, for performing any suitable portion of antenna selection and beamforming processes as described herein.

RF switches 114 and 118 may be any suitable devices for switching RF signals between selected antennas 104 and 108, respectively, and RF chains 110 and 116, respectively.

Although a transmitter 102 and a receiver 106 are illustrated in FIG. 1 for clarity, the transmitter and the receiver can be part of or operations of a transceiver that is also capable of receiving and transmitting, respectively in some embodiments. Such transceivers can be any suitable transceivers such as IEEE 802.15.3c or 802.11ad transceivers in some embodiments.

In some embodiments, when operating in certain high giga-Hertz frequency bands, such as the 60 GHz band, radio waves in such systems can propagate with strong line-of-sight (LOS) components as well as multi-cluster multipath components because of high path loss and inability of diffusion. Due to such near-optical propagation characteristics, a 3-D ray tracing technique can be used for channel modeling of these systems in some embodiments.

For example, as shown in FIG. 2, when operating in a room 200, such a 3-D ray tracing technique can be illustrated. The transceivers in such an example can be located in any suitable locations within room 200. For each location, possible rays in the LOS path and up to the second order reflections from walls, ceiling and floor can be traced for the links between the transmit antennas 204 and the receive antennas 208. For example, the impulse response for one link can be given by the following equation (1):

h(t,φ _(tx),θ_(tx),φ_(rx),θ_(rx))=Σ_(i) A ^((i)) C ^((i))(t−T ^((i)),φ_(tx)−Φ_(tx) ^((i)),θ_(tx)−Θ_(tx) ^((i)),φ_(rx)−Φ_(rx) ^((i)),θ_(rx)−Θ_(rx) ^((i)))  (1)

where A^((i)),T^((i)),φ_(tx) ^((i)),θ_(tx) ^((i)),Φ_(rx) ^((i)),Θ_(rx) ^((i)) are the inter-cluster parameters for the amplitude, the delay, the departure azimuth, the departure elevation, the arrival azimuth, and the arrival elevation, respectively, of ray cluster i, and

C ^((i))(t,φ _(tx),θ_(tx),Φ_(rx),θ_(rx))=Σ_(k) αA ^((i)) C ^((i))(t−T ^((i)),φ_(tx)−Φ_(tx) ^((i)),θ_(tx)−Θ_(tx) ^((i)),φ_(rx)−Φ_(rx) ^((i)),θ_(rx)−Θ_(rx) ^((i)))  (2)

denotes the cluster constitution by rays therein, where α^((i,k)),τ^((i,k)),φ_(tx) ^((i,k)),θ_(tx) ^((i,k)),φ_(rx) ^((i,k)),θ_(rk) ^((i,k)) are the ultra-cluster parameters for k^(th) ray in cluster i.

In an OFDM-based system, which can be used in some embodiments, the narrowband subchannels can be assumed to be flat-fading. In such cases, the equivalent channel matrix between the transmitter and the receiver can be given by

H=[h _(ij)], with h _(ij)=Σ_(l=1) ^(N) ^(rays) α_(ij) ^((l))δ(t−τ ₀)|_(t=τ) ₀   (3)

for i=1, 2, . . . , N_(r) and j=1, 2 . . . , N_(t), where: the entry h_(ij) denotes the channel response between transmitter j and receiver i by aggregating all N_(rays) traced rays between them at the delay of the LOS component, τ₀; and α_(ij) ^((l)) is the amplitude of lth ray in the corresponding link. Analytically, the channel matrix in (3) can be further separated into H_(LOS) and H_(NLOS) accounting for the LOS and non-LOS components, respectively

$\begin{matrix} {H = {{\sqrt{\frac{1}{K + 1}}H_{N\; {LOS}}} + {\sqrt{\frac{K}{K + 1}}H_{LOS}}}} & (4) \end{matrix}$

where the Rician K-factor indicates the relative strength of the LOS component.

In some embodiments, the numbers of available transmit and receive antennas, N_(t) and N_(r), can be large and the numbers of available radio-frequency (RF) chains at the transmitter and receiver, n_(t) and n_(r) can be such that n_(t)<<N_(t) and/or n_(r)<<N_(r). Accordingly, mechanisms for selecting a subset of n_(t)×n_(r) transmit and receive antennas out of the available N_(t)×N_(r) antennas in a MIMO system can be provided.

In such mechanisms, ω can be used to denote the set of indices corresponding to the selected n_(t) transmit antennas and n_(r) receive antennas, and H_(ω) can be used to denote the submatrix of the original MIMO channel matrix H corresponding to die selected antennas. For data transmission over a chosen MIMO system H_(ω), transmit beamformer w=[w₁,w₂, . . .,w_(n) _(t) ]^(T), with ∥w∥=1, can be used in some embodiments. The received signal can then be given by:

r=√{square root over (ρ)}H _(ω) ws+n  (5)

where: s is the transmitted data symbol;

$\rho = \frac{E_{S}}{n_{t}N_{0}}$

is the system signal-to-noise ratio (SNR) at each receive antenna; E_(s) and N₀ are the symbol energy and noise power density, respectively; and n˜

(0,I) is an additive white Gaussian noise vector. At the receiver, a receive beamformer u=[u₁, u₂, . . . , u_(n) _(r) ]^(T), with ∥u∥=1, can be applied to the received signal r, to obtain:

y(ω,w,u)=u^(H) r=√{square root over (ρ)}u ^(H) H _(ω) ws+u ^(H) n.  (6)

For a given antenna subset ω and known channel matrix H_(ω), the optimal transmit beamformer w and receive beamformer u, in the sense of maximum received SNR, can be given respectively by the right and left singular vectors of H_(ω) corresponding to the principal singular value σ₁(H_(ω)). The optimal antenna subset {circumflex over (ω)} can then be given by the antennas whose corresponding channel submatrix has the largest principal singular value as “follows”.

{circumflex over (ω)}=arg max_(wεS)σ₁(H _(w))  (7)

where S is a set different combinations of n_(t) transmit antennas and n_(r) receive antennas.

In accordance with some embodiments, a discrete stochastic approximation algorithm process can be used to perform antenna selection to find {circumflex over (ω)}. By setting the transmit and receive beam formers to some specific values, this process can compute a bound on the principal singular value of H_(ω) corresponding to the current antenna subset ω, and then iteratively update ω until it converges. Once the antenna subset ω has been selected, the transmit and receive beamformers w and u can be updated using a stochastic gradient algorithm process in some embodiments. At each iteration of this process, feedback bits can he transmitted from the receiver to the transmitter via a feedback channel to inform the transmitter about the updated transmit beamformer.

In some embodiments, a function φ(·) of y(ω,w,u) that is an unbiased estimate of σ₁(H_(ω)) can be used to solve for {circumflex over (ω)} as follows:

{circumflex over (ω)}=arg max_(ωεS)−

{φ(y(ω,w,u))}  (8)

In accordance with some embodiments, a stochastic approximation process can be used to solve equation (8). In some embodiments of this process, a sequence of estimates of the optimal antenna subset can be generated, where each new estimate is based on the previous one by moving a small step in a good direction towards the global optimizer. Through iterations of the process, the global optimizer can be found by means of maintaining an occupation probability vector π, which indicates an estimate of the occupation probability of one state (i.e., antenna subset). Under certain conditions, such an algorithm converges to the state which has the largest occupation probability in π.

An example 300 of such a process in accordance with some embodiments is shown in FIG. 3. In some embodiment, this process can be controlled by a hardware processor in a receiver (such as in controller 118 of FIG. 1) and the actions of a remote transmitter can controlled and synchronized via any suitable feedback.

As illustrated, after process 300 begins at 302, at 304, the process can set initial values for antenna subset ω⁽¹⁾, can set the occupation probability vector π⁽¹⁾=[ω⁽¹⁾,1]^(T) (which can have only one element with the first entry serving as the index of the antenna subset, and the other entry indicating the corresponding occupation probability), can set the optimal antenna subset {circumflex over (ω)}=ω⁽¹⁾, and can set the transmit beamformer (w) and receive beamformer (u) as follows:

$\begin{matrix} {{w = e_{k}},{{{and}\mspace{14mu} u} = {\frac{1}{\sqrt{n_{r}}}1}},} & (9) \end{matrix}$

where e_(k) is a length-r_(t) column, vector of all zeros, except for the k-th entry which is one; and 1 is a length-n_(r) column vector of all ones. The initial set of transmit antennas can be fed back to the transmitter via a feedback signal at 304 in some embodiments.

Next, at 306, M (e.g., 20) pilot signals (which can be set as s=1) can be transmitted from the selected transmit antennas and signals {y((k)^((m)), m=1, . . . , M; k=1, . . . , r_(t)+r_(r)} received via the selected receive antennas.

Then, at 308, the objective function φ(ω⁽¹⁾) for the initial antenna subset can be calculated. This objective function can be calculated in any suitable way. For example, in some embodiments, the objective function φ(ω⁽¹⁾) can be estimated as being:

$\begin{matrix} {\mspace{79mu} {{{{\varphi \left( \omega^{(1)} \right)} \approx {\overset{\sim}{B}}_{2}}\overset{\Delta}{=}{\frac{1}{n_{t}}{\sum\limits_{k = 1}^{n_{t}}{\overset{\sim}{\beta}(k)}}}}\mspace{79mu} {wherein}}} & (10) \\ {{\overset{\sim}{\beta}(k)}\overset{\Delta}{=}{\frac{1}{M}\begin{Bmatrix} {\left\lbrack {{y(k)^{{(1)}^{H}}{y(k)}^{(2)}} + {{y(k)}^{{(2)}^{H}}{y(k)}^{(3)}} + \ldots + {{y(k)}^{{(M)}^{H}}{y(k)}^{(1)}}} \right\rbrack +} \\ {\sum\limits_{{ = 1},{ \neq k}}^{n_{t}}{{\sum\limits_{m = 1}^{M}{{y(k)}^{{(m)}^{H}}{y()}^{(m)}}}}} \end{Bmatrix}}} & (11) \end{matrix}$

At 310, iteration and sub-iteration counters n and k, respectively, can both be set to one, and then at 312 the kth element in ω(n) can be replaced with a randomly selected antenna not in ω^((n)) to obtain {tilde over (ω)}^((n)).

Pilot signals can then be transmitted and the signal received at 314. If the new, randomly selected antenna is a transmit antenna, this can be achieved by feeding back the identity of the new transmit, antenna to the transmitter, causing the transmitter to transmit pilot signals from the new antenna, and obtaining the received signals {y(k)^((m)), m=1, . . . , M} at the receiver. If the new, randomly selected antenna is a receive antenna, this can be achieved by instructing the transmitter to sequentially transmit pilot signals from all transmit antennas, and obtaining the received signals.

Next, at 316, the objective function φ({tilde over (ω)}^((n))) for the current antenna subset can be calculated. This objective function can be calculated in any suitable way, such as described above, in some embodiments.

Then, at 318, the objective functions of ω^((n)) and {tilde over (ω)}^((n)) can be compared, and if the objective function for {tilde over (ω)}^((n)) is better than the objective function for ω^((n)), then: ω^((n)) can be set equal to {tilde over (ω)}^((n)) and ω^((n)) can be fed back to the transmitter (if any transmit antennas affected) at 320; and it can be determined at 322 if {tilde over (ω)}^((n)) is in π, and, if not, a column [{tilde over (ω)}^((n)),0]^(T) can be added to π at 324.

If it is determined at 318 that the objective function for {tilde over (ω)}^((n)) is not better than the objective function for ω^((n)), or after determining that {tilde over (ω)}^((n)) is in π or completing 324, process 300 can perform adaptive filtering to set π^((n)) and π^((n)) at 326. This can be perforated in any suitable manner. For example, in some embodiments, a forgetting factor μ(n−1)=1/(n+1) can be set, π^((n)) can be set equal to [1−μ(n+1)]π^((n)), and π^((n))(ω^((n))) can be set equal to π^((n))(ω^((n)))+μ(n+1).

At 328, it can be determined if k=n_(t)+n_(r), and, if not, k can be incremented at 330 and process 300 can loop back to 312. Otherwise, at 332, process 300 can next determine if π^((n))(ω^((n))) is greater than π^((n))({circumflex over (ω)}^((n))), and, if so, set {circumflex over (ω)}^((n)) equal to ω^((n)) at 334.

If it is determined at 332 that π^((n))(ω^((n))) is not greater than π^((n))({circumflex over (ω)}^((n))), or after completing 334, then process 300 can set ω^((n+1)) equal to ω^((n)) and π^((n+1)) equal to π^((n)) at 336.

Then, at 338, process 300 can determine whether the process is done. If not, the process can then increment n at 340 and loop back to 312. Otherwise, the process can terminate at 342. The process can determine if it is done in any suitable manner. For example, in some embodiments, process 300 can be done when n reaches a given number, such as 100 for example. Once done, the last selected subset can be considered to be the global (sub)optimizer.

In some embodiments, rather than using only one receive beamformer

$u = {\frac{1}{\sqrt{n_{r}}}1}$

as described above, r receive beamformers {u₁, . . . ,u_(r)} (which are columns of a n_(r)×n_(r) unitary matrix) can be used for each transmit beamformer e_(k), k=1, . . . , n_(r). Using such beamformers, an approximation of the objective function can be given by:

$\begin{matrix} {{{\varphi \left( \omega^{(1)} \right)} \approx {\frac{1}{n_{t}\sqrt{\min \left\{ {r,n_{t}} \right\}}}{F\left( {\sum\limits_{j = 1}^{r}{{y\left( {\omega,u_{j}} \right)}^{H}{y\left( {\omega,u_{j}} \right)}}} \right)}}},} & (12) \end{matrix}$

or its smoother version

$\begin{matrix} {\; {{{\varphi \left( \omega^{(1)} \right)} \approx {\frac{1}{n_{t}\sqrt{\min \left\{ {r,n_{t}} \right\}}}{\sum\limits_{k = 1}^{n_{t}}{\overset{\sim}{\gamma}(k)}}}}\; {where}}} & (13) \\ {{{\overset{\sim}{\gamma}(k)}\overset{\Delta}{=}{\frac{1}{m}\begin{Bmatrix} {{\sum\limits_{j = 1}^{r}\begin{bmatrix} {{{y\left( {\omega,e_{k},u_{j}} \right)}^{{(1)}^{H}}{y\left( {\omega,e_{k},u_{j}} \right)}^{(2)}} + \ldots +} \\ {{y\left( {\omega,e_{k},u_{j}} \right)}^{{(M)}^{H}}{y\left( {\omega,e_{k},u_{j}} \right)}^{(1)}} \end{bmatrix}} +} \\ {\sum\limits_{{ = 1},{ \neq k}}^{n_{t}}{{\sum\limits_{j = 1}^{r}{\sum\limits_{m = 1}^{M}{{y\left( {\omega,e_{k},u_{j}} \right)}^{{(m)}^{H}}{y\left( {\omega,e_{},u_{j}} \right)}^{(m)}}}}}} \end{Bmatrix}}}\; {and}\; {{{y\left( {\omega,u_{j}} \right)} = \left\lbrack {{y\left( {\omega,e_{1},u_{j}} \right)},\ldots \mspace{14mu},{y\left( {\omega,e_{n_{t}},u_{j}} \right)}} \right\rbrack},{j = 1},\ldots \mspace{14mu},{r.}}} & (14) \end{matrix}$

Once the antenna subset H_(ω) has been chosen, the transmit and receive beamformers w and u can be computed in some embodiments, w and u can be chosen to maximize the received SNR, or alternatively, to maximize the power of the receive beamformer output in (6), |y(ω,w,u)|², i.e.:

(ŵ,û)=arg max_(wεC) _(n) _(t,∥w∥=1;uεC) _(n) _(r,∥u∥=1)|y(ω,w,u)|².  (15)

In accordance with some embodiments, a stochastic gradient method process can be used for updating the beamformers. An example 400 of such a process in accordance with some embodiments is shown in FIG. 4.

As illustrated, after process 400 begins at 402, beamformers w⁽⁰⁾ and u⁽⁰⁾ can be initialized and iteration counter n can be set to zero at 404.

Any suitable initial beamformers w and u can be used in some embodiments. For example, in some embodiments, these initial beamformers can be randomly selected. As another example, in some embodiments, a non-random initialization can be used to speed up the convergence of process 400. Because the channel can consist of a deterministic LOS component H_(LOS) and a random component, when the K factor is high, the LOS component mostly determines die largest singular mode. Hence, the transmit and receive beamformers can be initialized as the right and left singular vectors of H_(LOS), respectively, in some embodiments.

Next, at 406, given a set of current beamformers (w,u), K_(t) perturbation vectors can be generated for the transmit beamformer, p_(j)˜CN(0,I), j=1, . . . , K_(t), and K_(r) perturbation vectors can be generated for the receive beamformer, q_(i)˜CN(0, I), i=1, . . . , K_(r). Then for each of the normalized perturbed transmit-receive beamformer pairs:

$\begin{matrix} {\left( {\frac{w + {\beta \; p_{j}}}{{w + {\beta \; p_{j}}}},\frac{u + {\beta \; q_{i}}}{{u + {\beta \; q_{i}}}}} \right),} & (16) \end{matrix}$

where β is a step-size parameter, the corresponding received output power |y|² can be measured and the effective channel gain |u^(H)H_(ω)w|² can be used as a performance metric independent of transmit power at 408. The transmitter can then be informed at 410 of the selected perturbation vector by a [logK_(t)]-bit feedback message from the receiver. Then, at 412, the beamformers can be updated using the perturbation vector pair that gives the largest output power at the receiver.

At 414, process 400 can determine if it is done, and if not, the process can branch to 416 to increment n and then loop back to 406. Otherwise, process 400 can terminate at 418, Process 400 can determine whether it is done in any suitable manner. For example, in some embodiments, the process can be determined as being done when the effective channel gain |u^(H)H_(ω)w|² fluctuates below a tolerance threshold.

In some embodiments, instead of switching to different receive beamformers and making K_(t)K_(r) transmissions, K_(r) parallel receiver beamformers can be set up to obtain K_(r) receiver outputs simultaneously and only K_(t) transmissions performed for each iteration.

In some embodiments, rather than generating all candidate K_(t)+K_(r) beamformers anew at each iteration, the best transmit and receive beamformers from the previous iteration can be kept and K_(t)−1 new transmit beamformers and K_(r)−1 new receive beamformers can be generated for the current iteration.

In some embodiments, an obstacle can block a LOS signal and therefore attenuate the received power corresponding to that signal, A metric of diffraction ratio matrix (DRM) can be used in some embodiments to model the blockage impact to an entire antenna array from a wave propagation point of view. More particularly, the metric diffraction ratio can be used to indicate the blockage impact on a single radio link as follows:

$\begin{matrix} {{d_{ij} = \frac{E_{ij}}{E_{{ij},{FS}}}},{i = 1},\ldots \mspace{14mu},N_{r},{j = 1},\ldots \mspace{14mu},N_{t}} & (17) \end{matrix}$

where:

-   -   E_(ij) is the incident electric at the i receive antenna from         the j transmit antenna as:

${E_{ij} = {\frac{E_{0}}{r}^{{- j}\; \beta \; r}}},$

-   -   where E₀ is the electric at the jth transmit antenna, r is the         distance between antennas i and j,

${\beta = \frac{2\; \pi}{\lambda}},$

and E_(ij) can be computer using Huygen's law iteratively upon each obstacle plane; and

-   -   E_(ij,FS) is the incident electric at the i receive antenna from         the j transmit antenna in free space.

The obstacle impact alters the wireless channel matrix by means of DRM, namely D={d_(ij)}, such that

H _(BLK) =H _(LOS) ∘D+H _(NLOS)  (18)

where e∘ is Hadamard product operator.

In some embodiments, when an obstacle blocks the LOS transmission from the transmitter to the receiver, a backup antenna subset can be chosen as a substitution for the primary antenna subset which may be attenuated by the obstacle.

When the obstacle is detected and the primary antenna subset is blocked, members in the antenna subset selection history can be re-evaluated, using a scoring function and the member with highest score can be chosen as the backup antenna subset.

In some embodiments, a scoring function can be set as:

S(ω,D)=J(ω)e ^((∥D) ^(ω) ^(∥p) ² ^(-n) ^(t) ^(n) ^(r) ⁾  (19)

where:

J(ω) is the objective function with respect to the antenna subset ω in free space channel; and

D_(ω) is a sub-matrix of D whose entries are selected by the indices in antenna subset ω.

An example 500 of a process for selecting a backup antenna subset in accordance with some embodiments is shown in FIG. 5. In some embodiment, this process can be controlled by a hardware processor in a receiver and the actions of a remote transmitter can controlled and synchronized via any suitable feedback.

As illustrated, after process 500 begins at 502, at 504, the process can set initial values for antenna subset ω⁽¹⁾, can set the optimal antenna subset {circumflex over (ω)}=ω⁽¹⁾, can set the number of visits K(ω⁽¹⁾)=1, can set the cumulated objective function Σ(ω⁽¹⁾)=0, and can set the transmit beamformer (w) and receive beamformer (u) as follows:

$\begin{matrix} {{w = e_{k}},{{{and}\mspace{14mu} u} = {\frac{1}{\sqrt{n_{r}}}1}},} & (20) \end{matrix}$

where e_(k) is a length-n_(t) column vector of ail zeros, except for the k-th entry which is one; and 1 is a length-n_(r) column vector of all ones. The initial set of transmit antennas can be fed back to the transmitter via a feedback signal at 504 in some embodiments.

Next, at 506, M (e.g., 20) pilot signals (which can be set as s=1) can be transmitted from the selected transmit antennas and signals {y(k)^((m)), m=1, . . . , M; k=1, . . . , n_(t)+n_(r)} received via the selected receive antennas.

Then, at 508, the objective function φ(ω⁽¹⁾) for the initial antenna subset can be calculated. This objective function can be calculated in any suitable way. For example, in some embodiments, the objective function φ(ω⁽¹⁾) can be estimated as being:

$\begin{matrix} {\mspace{79mu} {{{{\varphi \left( \omega^{(1)} \right)} \approx {\overset{\sim}{B}}_{2}}\overset{\Delta}{=}{\frac{1}{n_{t}}{\sum\limits_{k = 1}^{n_{t}}{\overset{\sim}{\beta}(k)}}}}\mspace{79mu} {wherein}}} & (21) \\ {{\overset{\sim}{\beta}(k)}\overset{\Delta}{=}{\frac{1}{M}\begin{Bmatrix} {\left\lbrack {{{y(k)}^{{(1)}^{H}}{y(k)}^{(2)}} + {{y(k)}^{{(2)}^{H}}{y(k)}^{(3)}} + \ldots + {{y(k)}^{{(M)}^{H}}{y(k)}^{(1)}}} \right\rbrack +} \\ {\sum\limits_{{ = 1},{ \neq k}}^{n_{t}}{{\sum\limits_{m = 1}^{M}{{y(k)}^{{(m)}^{H}}{y()}^{(m)}}}}} \end{Bmatrix}}} & (22) \end{matrix}$

At 510, iteration and sub-iteration counters n and k, respectively, can both be set to one, and then at 512 the kth element in ω(n) can be replaced with a randomly selected antenna not in ω^((n)) to obtain {tilde over (ω)}^((n)). Pilot signals can then be transmitted and the signal received at 514. If the new, randomly selected antenna is a transmit antenna, this can be achieved by feeding back the identity of the new transmit antenna to the transmitter, causing the transmitter to transmit pilot-signals from the new antenna, and obtaining the received signals {y(k)^((m)), m=1, . . . , M} at the receiver. If the new, randomly selected antenna is a receive antenna, this can be achieved by instructing the transmitter to sequentially transmit pilot signals from all transmit antennas, and obtaining the received signals.

Next, at 516, the objective function φ({tilde over (ω)}^((n))) for the current antenna subset can be calculated. This objective function can be calculated in any suitable way, such as described above, in some embodiments.

Then, at 518, the objective functions of ω^((n)) and {tilde over (ω)}^((n)) can be compared, and if the objective function for {tilde over (ω)}^((n)) is better than the objective function for ω^((n)), then ω^((n+1)) can be set equal to {tilde over (ω)}^((n)), J_(temp) can be set equal to the objective function of {tilde over (ω)}^((n)), and ω^((n)) can be fed back to the transmitter (if any transmit antennas affected) at 520.

Otherwise, if it is determined at 518 that the objective function for {tilde over (ω)}^((n)) is not better than the objective function for ω^((n)), then, at 522, ω^((n+1)) can be set equal to ω^((n)), and J_(temp) can be set equal to the objective function of ω^((n)).

Next, at 524, process 500 can increment the number of visits (K(ω^((n+1)))=K(ω^((n+1)))+1), can cumulate the objective function (Σ(ω^((n+1)))=Σ(ω^((n+1)))+J_(temp)), and can calculate the average objective function (J(ω^((n+1)))=Σ(ω^((n+1)))/K(ω^((n+1)))).

Then at 526, the process can determine whether the number of visits (K(ω^((n+1)))) is greater than th, the minimum number of visits that are reliable, AND whether the cumulated objective function (Σ(ω^((n+1)))) is greater than J({circumflex over (ω)}), the objective function of the optimal antenna subset. If so, then process 500 can push the selected subset to history as Q=[Q {circumflex over (ω)}] and {circumflex over (ω)}=ω^((n+1)).

If it is determined at 526 that K(ω^((n+1)))<=th OR Σ(ω^((n+1)))>=J({circumflex over (ω)}), or after completing 528, process 500 can determined if a transmission is blocked at 530. This determination can be made in any suitable manner. For example, this determination can be made if the received transmission power significantly drops over a short period of time. If it is determined at 530 that the transmitter is blocked, then at 532, process 500 can acquire DRM D using (17), score each member of the history in Q using the scoring function (19), and switch to the backup with the highest score if the current antenna subset is significantly attenuated.

If it is determined at 530 that the transmitter is not blocked or after completing 532, then at 534, process 500 can determine if k=n_(t)+n_(r). If not, process 500 can branch to 536, where k can be incremented and then can loop back to 512. Otherwise, at 538, process 500 can determine whether the process is done. If not, the process can then increment n at 540 and loop back to 512. Otherwise, the process can terminate at 542. The process can determine if it is done in any suitable manner. For example, in some embodiments, process 500 can be done when n reaches a given number, such as 100 for example.

The mechanisms and processes described herein for selecting antennas and beamformers can be implemented in any suitable hardware that is part of or connected to a receiver and/or a transmitter, such as controllers 112 and 118 (FIG. 1), in some embodiments. For example, these mechanisms and/or processes can be implemented in any of a general purpose device such as a computer or a special purpose device such as dedicated logic, a gate array, a client, a server, mobile terminal (e.g., mobile phone), etc. Any of these general or special purpose devices can include any suitable components such as a hardware processor (which, can be a microprocessor, digital signal processor, a controller, etc.), memory, communication interfaces, display controllers, input devices, etc.

In some embodiments, any suitable computer readable media can be used for storing instructions for performing the mechanisms and/or processes described herein. For example, in some embodiments, computer readable media can be transitory or non-transitory. For example, non-transitory computer readable media can include media such as magnetic media (such as hard disks, floppy disks, etc.), optical media (such as compact discs, digital video discs, Blu-ray discs, etc.), semiconductor media (such as Hash memory, electrically programmable read only memory (EPROM). electrically erasable programmable read only memory (EEPROM), etc.), any suitable media that is not fleeting or devoid of any semblance of permanence during transmission, and/or any suitable tangible media. As another example, transitory computer readable media can include signals on networks, in wires, conductors, optical fibers, circuits, any suitable media that is fleeting and devoid of any semblance of permanence during transmission, and/or any suitable intangible media.

Although the invention has been described and illustrated in the foregoing illustrative embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the invention can be made without departing from the spirit and scope of the invention, which is limited only by the claims that follow. Features of the disclosed embodiments cars be combined and rearranged in various ways. 

1. A system for selecting antennas comprising: at least one hardware processor that; (a) selects a current antenna subset of a plurality of transmit antennas and receive antennas; (b) receives signals in response to a transmission of pilot symbols using the current antenna subset; (c) determines a current objective function for the current antenna subset based on the signals received using the current antenna subset; (d) replaces an antenna in the current antenna subset with another antenna not in the current antenna subset to form a next antenna subset; (e) receives signals in response to a transmission of pilot symbols using the next antenna subset; (f) determines a next objective function for the current antenna subset based on the signals received using the next antenna subset; (g) determines whether the next objective function is better than the current objective function, and if so creates a next occupation probability vector entry having a value corresponding to the next antenna subset; and (h) determines whether the value for the next occupation probability vector entry is larger than a value for an optimal occupation probability vector entry, and if so sets the second antenna subset as the optimal antenna subset.
 2. The system of claim 1, wherein the at least one hardware processor also: designates the next antenna subset as the current antenna subset; designates the next objective function as the current objective function; and repeats (d)-(h).
 3. The system of claim 1, wherein the at least one hardware processor also: causes n_(t) RF chains to be coupled to transmit antennas of the current antenna subset; and selects a transmit beamformer that is used to transmit pilot symbols that is equal to a length n_(t) column vector of all zeros except for a kth entry which is one.
 4. The system of claim 1, wherein the at least one hardware processor also; causes n_(r) RF chains to be coupled to receive antennas of the current antenna subset; and selects a receive beamformer that is used to receive pilot symbols that is equal to a length n_(r) column vector of all ones divided by the square root of n_(r).
 5. The system of claim 1, wherein the signals received using the current antenna subset are scalar values output from a receive beamformer.
 6. The system of claim 1, wherein the at least one hardware processor also iteratively selects a transmit beamformer and a receive beamformer by applying perturbation vectors to the transmit beamformer and the receive beamformer and evaluates power received using the perturbed transmit beamformer and the perturbed receive beamformer.
 7. A method for selecting antennas comprising; (a) selecting a current antenna subset of a plurality of transmit antennas and receive antennas; (b) receiving signals in response to a transmission of pilot symbols using the current antenna subset; (c) determining a current objective function for the current antenna subset based on the signals received using the current antenna subset; (d) replacing an antenna in the current antenna subset with another antenna not in the current antenna subset to form a next antenna subset; (e) receiving signals in response to a transmission of pilot symbols using the next antenna subset; (f) determining a next objective function for the current antenna subset based on the signals received using the next antenna subset; (g) determining whether the next objective function is better than the current objective function, and if so creating a next occupation probability vector entry having a value corresponding to the next antenna subset; and (h) determining whether the value for the next occupation probability vector entry is larger than a value for an optimal occupation probability vector entry, and if so setting the second antenna subset as the optimal antenna subset.
 8. The method of claim 7, further comprising: designating the next antenna subset as the current antenna subset; designating the next objective function as the current objective function; and repeating (d)-(h),
 9. The method of claim 7, further comprising: causing n_(t) RF chains to be coupled to transmit antennas of the current antenna subset; and selecting a transmit, beamformer that is used to transmit, pilot symbols that is equal to a length n_(t) column vector of ail zeros except tor a kth entry which is one.
 10. The method of claim 7, further comprising: causing n_(r) RF chains to be coupled to receive antennas of the current antenna subset; and selecting a receive beamformer that is used to receive pilot symbols that is equal to a length n_(r) column vector of all ones divided by the square root of n_(r).
 11. The method of claim 7, wherein the signals received using the current antenna subset are scalar values output from a receive beamformer.
 12. The method of claim 7, further comprising iteratively selecting a transmit beamformer and a receive beamformer by applying perturbation vectors to the transmit beamformer and the receive beamformer and evaluating power received using the perturbed transmit beamformer and the perturbed receive beamformer.
 13. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for selecting antennas, the method comprising: (a) selecting a current antenna subset of a plurality of transmit antennas and receive antennas; (b) receiving signals in response to a transmission of pilot symbols using the current antenna subset; (c) determining a current objective function for the current antenna subset based on the signals received using the current antenna subset; (d) replacing an antenna in the current antenna subset with another antenna not in the current antenna subset to form a next antenna subset; (e) receiving signals in response to a transmission of pilot symbols using the next antenna subset; (f) determining a next objective function for the current antenna subset based on the signals received using the next antenna subset; (g) determining whether foe next objective function is better than the current objective function, and if so creating a next occupation probability vector entry having a value corresponding to the next antenna subset; and (h) determining whether the value for the next occupation probability vector entry is larger than a value for an optimal occupation probability vector entry, and if so setting the second antenna subset as the optimal antenna subset.
 14. The non-transitory computer-readable medium of claim 13, wherein the method further comprises: designating the next antenna subset as the current antenna subset; designating the next objective function as the current objective function; and repeating (d)-(h).
 15. The non-transitory computer-readable medium of claim 13, wherein the method further comprises: causing n_(t) RF chains to be coupled to transmit antennas of the current antenna subset; and selecting a transmit beamformer that is used to transmit pilot symbols that is equal to a length n_(t) column vector of all zeros except for a kth entry which is one.
 16. The non-transitory computer-readable medium of claim 13, wherein the method further comprises: causing n_(r) RF chains to be coupled to receive antennas of the current antenna subset; and selecting a receive beamformer that is used to receive pilot symbols that is equal to a length n_(r) column vector of all ones divided by the square root of n_(r).
 17. The non-transitory computer-readable medium of claim 13, wherein the signals received using the current antenna subset are scalar values output from a receive beamformer.
 18. The non-transitory computer-readable medium of claim 13, wherein the method further comprises iteratively selecting a transmit beamformer and a receive beamformer by applying perturbation vectors to the transmit beamformer and the receive beamformer and evaluating power received using the perturbed transmit beamformer and the perturbed receive beamformer. 